package com.zb.service.impl;

import com.zb.dao.BookDao;
import com.zb.dao.impl.BookDaoImpl;
import com.zb.pojo.Book;
import com.zb.pojo.Page;
import com.zb.service.BookService;

import java.util.List;

/**
 * @author zb
 * @create 2021-03-04 21:09
 */
public class BookServiceImpl implements BookService {

    private BookDao bookDao = new BookDaoImpl();

    @Override
    public int addBook(Book book) {
        return bookDao.addBook(book);
    }

    @Override
    public int deleteBookById(Integer id) {
        return bookDao.deleteBookById(id);
    }

    @Override
    public int updateBook(Book book) {
        return bookDao.updateBook(book);
    }

    @Override
    public Book queryBookById(Integer id) {
        return bookDao.queryBookById(id);
    }

    @Override
    public List<Book> queryBooks() {
        return bookDao.queryBooks();
    }

    @Override
    public Page page(int pageNo, int pageSize) {
        Page<Book> page = new Page();

        // 设置每页显示的数量
        page.setPageSize(pageSize);
        // 求总记录数
        int pageTotalCount = bookDao.queryBookTotalCount();
        // 设置总记录数
        page.setPageTotalCount(pageTotalCount);
        // 求总页码
        int pageTotal = pageTotalCount/pageSize + (pageTotalCount%pageSize==0?0:1);
        // 设置总页码
        page.setPageTotal(pageTotal);
        // 设置当前页码
        page.setPageNo(pageNo);

        // 求当前页数据的开始索引
        int begin = (page.getPageNo()-1)*pageSize;
        // 求当前页数据
        List<Book> items = bookDao.queryPageItems(begin,pageSize);
        // 设置当前页数据
        page.setItems(items);
        return page;
    }

    @Override
    public Page<Book> pageByPrice(int pageNo, int pageSize, int min, int max) {
        Page<Book> page = new Page();

        // 设置每页显示的数量
        page.setPageSize(pageSize);
        // 求总记录数
        int pageTotalCount = bookDao.queryBookTotalCountByPrice(min,max);
        // 设置总记录数
        page.setPageTotalCount(pageTotalCount);
        // 求总页码
        int pageTotal = pageTotalCount/pageSize + (pageTotalCount%pageSize==0?0:1);
        // 设置总页码
        page.setPageTotal(pageTotal);
        // 设置当前页码
        page.setPageNo(pageNo);

        // 求当前页数据的开始索引
        int begin = (page.getPageNo()-1)*pageSize;
        System.out.println(min+","+max);
        // 求当前页数据
        List<Book> items = bookDao.queryPageItemsByPrice(begin,pageSize,min,max);
        // 设置当前页数据
        page.setItems(items);
        return page;
    }
}
